package lanQiaoBei.数学知识.中国剩余定理;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

/*
题目描述：

给定2n个整数a1,a2,…,an和m1,m2,…,mn,求一个最小的非负整数x，满足∀i∈[1,n],x≡mi(mod ai)。

输入格式

第1行包含整数n。第2..n行：每i+1行包含两个整数ai和mi,数之间用空格隔开。

输出格式

输出最小非负整数x，如果x不存在，则输出-1。如果存在x，则数据保证x一定在64位整数范围内。

数据范围

1≤ai≤2^31−1,0≤mi<ai,1≤n≤25

输入样例：

2
8 7
11 9
输出样例：

31
————————————————
 */
public class P1 {
       static Scanner sc=new Scanner(System.in);
       static long x,y;
       static long egcd(long a,long b){
    	       if(b==0){
    	    	   x=1;y=0;
    	    	   return a;
    	       }
    	       long d=egcd(b, a%b);
    	       long t=x;
    	       x=y;
    	       y=t-a/b*y;//这里必须先算a整除b
    	       return d;
       }
       public static void main(String[] args) throws IOException {
		      int n=sc.nextInt();
		      boolean ha=true;
		      long a1=sc.nextLong(),m1=sc.nextLong();
		      
		      for(int i=1;i<n;i++){
		    	  long a2=sc.nextLong(),m2=sc.nextLong();
		    	  long d=egcd(a1, a2);
		    	  System.out.println(d);
		    	  if((m2-m1)%d!=0){
		    		  ha=false;
		    		  break;
		    	  }
		    	  System.out.println(x);
		    	  x*=(m2-m1)/d;
		    	  long t=a2/d;
		    	  x=(x%t+t)%t;
		    	  m1=x*a1+m1;
		    	  a1=a1*a2/d;
		      }
		      if(ha){
		    	  System.out.print((m1%a1+a1)%a1);
		      }else System.out.print(-1);
	}
}